const express = require('express');
const router = express.Router();
const bookController = require('../controllers/bookController');
const { authUser, authAdmin } = require('../middleware/auth');

// 书籍资源集合
router.get('/list', bookController.getBookList);            // 获取书籍列表
router.post('/', authUser, bookController.createBook);       // 创建书籍

// 当前用户书籍资源
router.get('/me/books', authUser, bookController.getMyBooks);// 获取我的书籍
router.get('/me/likes', authUser, bookController.getLikedBooks);// 获取我喜欢的书籍

// 用户书籍子资源
router.get('/users/:userId', bookController.getUserPosts);   // 获取指定用户的书籍

// 单个书籍资源
router.get('/:id', bookController.getBookById);             // 获取单本书籍
router.put('/:id', authUser, bookController.updateBook);    // 更新书籍
router.delete('/:id', authUser, bookController.deleteBook); // 删除书籍

// 书籍交互子资源
router.get('/:id/comments', bookController.getComments);    // 获取评论列表
router.post('/:id/comments', authUser, bookController.addComment); // 添加评论
router.post('/:id/likes', authUser, bookController.likeBook);     // 点赞书籍
router.delete('/:id/likes', authUser, bookController.unlikeBook); // 取消点赞
router.post('/:id/ratings', authUser, bookController.rateBook);   // 评分书籍

// 点赞评论
router.post('/:id/comments/:commentId/likes', authUser, bookController.likeComment);  // 点赞评论
router.delete('/:id/comments/:commentId/likes', authUser, bookController.unlikeComment); // 取消点赞评论

// 书籍状态管理
router.put('/:id/publish', authUser, bookController.publishBook);    // 上架书籍
router.put('/:id/unpublish', authUser, bookController.unpublishBook); // 下架书籍

// 管理员书籍操作路由
router.put('/admin/:id/publish', authAdmin, bookController.publishBook);     // 管理员上架书籍
router.put('/admin/:id/unpublish', authAdmin, bookController.unpublishBook); // 管理员下架书籍
router.delete('/admin/:id', authAdmin, bookController.deleteBook);           // 管理员删除书籍

// 删除评论
router.delete('/:id/comments/:commentId', authUser, bookController.deleteComment);

module.exports = router;  